package com.denlaku.longan.controller;

import com.denlaku.longan.http.Return;
import com.denlaku.longan.qo.BizTagQuery;
import com.denlaku.longan.qo.DataSetQuery;
import com.denlaku.longan.vo.BizTag;
import com.denlaku.longan.vo.DataSet;
import com.denlaku.longan.vo.MetaData;
import com.denlaku.longan.vo.PageBy;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @author tianx
 */
@RequestMapping("/api/data-set")
public interface DataSetController {
	/**
	 * 新增数据集
	 *
	 * @param dataSet 数据集
	 * @return 响应对象
	 */
	@PostMapping("/add")
	Return<Long> add(@RequestBody DataSet dataSet);

	/**
	 * 更新数据集
	 *
	 * @param dataSet 数据集
	 * @return 响应对象
	 */
	@PostMapping("/update")
	Return<Void> update(@RequestBody DataSet dataSet);

	/**
	 * 删除数据集
	 *
	 * @param id 数据集ID
	 * @return 响应对象
	 */
	@PostMapping("/delete")
	Return<Void> delete(Long id);

	/**
	 * 分页查询数据集
	 *
	 * @param query 查询参数
	 * @param pageBy 分页参数
	 * @return 响应对象
	 */
	@PostMapping("/page-list")
	Return<List<DataSet>> pageList(DataSetQuery query, PageBy pageBy);

	/**
	 * 查询数据集列表
	 *
	 * @param query 查询参数
	 * @return 响应对象
	 */
	@PostMapping("/list")
	Return<List<DataSet>> list(DataSetQuery query);

	/**
	 * 根据ID获取数据集
	 *
	 * @param id 数据集ID
	 * @return 响应对象
	 */
	@GetMapping("/get")
	Return<DataSet> get(Long id);

	/**
	 * 查询元数据列表
	 *
	 * @param dataSet 查詢參數
	 * @return 响应对象
	 */
	@PostMapping("/list-meta-data")
	Return<List<MetaData>> listMetaData(@RequestBody DataSet dataSet);
}
